//
//  CZBaseViewController.m
//  0908网易彩票01
//
//  Created by Apple on 15/9/8.
//  Copyright (c) 2015年 itcast. All rights reserved.
//

#import "ZDBaseSettingViewController.h"

@interface ZDBaseSettingViewController ()

@end

@implementation ZDBaseSettingViewController

/**
 *  重写构造方法，方便创建分组的tableView
 */
- (instancetype)init
{
    return [self initWithStyle:UITableViewStyleGrouped];
}

/**
 *  重写构造方法，方便创建分组的tableView
 */
- (instancetype)initWithStyle:(UITableViewStyle)style
{
    return [super initWithStyle:UITableViewStyleGrouped];
}



- (void)viewDidLoad
{
    [super viewDidLoad];
    
//    //设置背景
//    self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg"]];
//    
//    //取消系统默认分割线
//    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    
    //设置每一组的底部高度为0
    self.tableView.sectionFooterHeight = 0;
    
    //设置每一组的顶部高度为22(默认就是22) 通过显示设置该属性，可以解决自定义cell分割线部分粗体显示的bug
    self.tableView.sectionHeaderHeight = 11;
    
    //设置tableView的初始偏移
    self.tableView.contentInset = UIEdgeInsetsMake(-22, 0, 0, 0);
    
}

#pragma mark - 数据源方法
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return self.groups.count;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    //取出组模型
    ZDSettingGroup *group = self.groups[section];
    
    return group.items.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //创建cell
    ZDSettingItemCell *cell = [ZDSettingItemCell settingItemCell:tableView];
    
    //取出组模型
    ZDSettingGroup *group = self.groups[indexPath.section];
    //取出模型
    ZDSettingItem *item = group.items[indexPath.row];
    
    cell.item = item;
    
//    cell.showBottomLine = indexPath.row == group.items.count-1 ? NO : YES;
    
    return cell;
}


#pragma mark - 代理方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //取消选中
    [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
    
    //取出组模型
    ZDSettingGroup *group = self.groups[indexPath.section];
    //取出模型
    ZDSettingItem *item = group.items[indexPath.row];
    
    
    //在跳转之前执行
    if (item.itemOperationBlock)
    {
        item.itemOperationBlock();
    }
    
#warning 注意这里不能写成item.class ———— 表示item对象所属的类 与item.itemClass意义不同
    if (item.itemClass)
    {
        UIViewController *vc = [[item.itemClass alloc] init];
        
        vc.title = item.title;
        
        [self.navigationController pushViewController:vc animated:YES];
    }
    
//    if ([item isKindOfClass:[CZSettingItemLabel class]])
//    {
//        CZSettingItemLabel *itemLabel = (CZSettingItemLabel *)item;
//
//        //调用block
//        itemLabel.itemLabelBlock();
//    }
}


- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    //取出组模型
    ZDSettingGroup *group = self.groups[section];
    
    return group.header;
}

- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
    //取出组模型
    ZDSettingGroup *group = self.groups[section];
    
    return group.footer;
}


- (void)dealloc
{
    ZDLog(@"%@ ---- dealloc", [self class]);
}

@end
